/*
 * @(#)ModBrowse.java 1.00 29 Ago 2007
 *
 * Copyright (c) 2005-2007 Soluciones Info Móviles S.A.C.
 * Av. Javier Prado Oeste 203 - Piso 13, Lima 27, Perú.
 * Todos los derechos reservados.
 */

package sim;

import java.util.Vector;
import sim.auth.DocAuth;
import sim.framework.*;
import sim.framework.dialog.Dialog;
import sim.framework.dialog.DlgBrowse;
import sim.framework.font.FontSingle;
import sim.framework.gui.*;
import sim.framework.io.FileGets;
import sim.framework.io.FileStream;
import sim.framework.io.ModSimio;
import sim.store.DataTxt;
import sim.utils.Utils;

/**
 * Este objeto implementa el interprete de documentos brws. Un documento
 * brws es un archivo de texto plano que contiene un "link brws" por
 * linea. Un link brws consta de secciones separadas por pipe "|" : una
 * referencia, un nombre de archivo, y una conjunto de parametros.
 * Un documento brws se presenta en un control de tipo lista, cada item
 * muestra una referencia la cual tiene un icono asociado si el link brws
 * cuenta con un nombre de archivo.
 *
 * Si el objeto browse es configurado para trabajar en linea, cada vez
 * que el usuario selecciona un item con icono asociado (archivo asociado),
 * el objeto browse se conecta al servidor y envía como comando el nombre
 * del archivo seguido por el conjunto de parametros.
 *
 * @author      Omar Quintana
 * @since       1.0
 */
public abstract class ModBrowse extends ModSimio implements FileGets{
    
    private static final int REG_MAXLEN = 128;
    
    private static final int LINK_FLD_NAME = 0;
    private static final int LINK_FLD_FILE = 1;
    private static final int LINK_FLD_ARGS = 2;
    private static final int LINK_FLD_SIZE = 3;
    
    private static final String TEXT_NEXT = "";
    private static final String TEXT_BACK = "";
    private static final String TEXT_LINK = "";
    
    private static final byte[] BROWSE_CMD = {'b', 'r', 'o', 'w', 's', 'e', ' '};
    
    private Vector  m_Links; // almacena el historial de links, contiene DataTxt.
    private DataTxt m_DataTxtItem; // representa un item del vector.
    private byte[] m_Data; // almacena datos recuperados del Simio.
    private FileStream m_File; // almacena los datos de una página browse
    
    private int m_LastOffset; // almacena el item offset seleccionado
    private boolean m_SelectItem; // indica si un item debe estar seleccionado
    
    private DocAuth m_DocAuth; // documento del usuario.
    
    private DlgBrowse m_DlgBrws; // GUI
    
    /**
     * Crea una nueva instancia de ModBrowse
     */
    public ModBrowse(int i, Simlet s) {
        super(i, s);
    }
    
}
